// 获取当前时间（10:10格式）
export function getCurrentTime() {
  const now = new Date()
  const hours = now.getHours().toString().padStart(2, '0')
  const minutes = now.getMinutes().toString().padStart(2, '0')
  return `${hours}:${minutes}`
}

// 获取当前日期（02月02日格式）
export function getCurrentDate() {
  const now = new Date()
  const month = (now.getMonth() + 1).toString().padStart(2, '0')
  const day = now.getDate().toString().padStart(2, '0')
  return `${month}月${day}日`
}
/**
 * 将时间戳转换为"多久之前"的中文描述
 * @param {number} timestamp - 毫秒级时间戳
 * @returns {string} 格式化后的时间描述
 */
export function timeAgo(timestamp) {
  // 获取当前时间戳（毫秒级）
  const now = Date.now()

  // 计算时间差（毫秒）
  const diff = now - Number.parseInt(timestamp)

  // 边界情况：未来时间
  if (diff < 0)
    return '刚刚'

  // 定义时间单位转换常量（毫秒）
  const units = {
    SECOND: 1000, // 1秒 = 1000毫秒
    MINUTE: 60000, // 1分钟 = 60秒
    HOUR: 3600000, // 1小时 = 60分钟
    DAY: 86400000, // 1天 = 24小时
    MONTH: 2629800000, // 1月 ≈ 30.44天（平均）
    YEAR: 31536000000, // 1年 = 365天
  }

  // 特殊处理：0-5秒内显示"刚刚"
  if (diff < units.SECOND * 5)
    return '刚刚'

  // 计算各时间单位
  const seconds = Math.floor(diff / units.SECOND)
  const minutes = Math.floor(diff / units.MINUTE)
  const hours = Math.floor(diff / units.HOUR)
  const days = Math.floor(diff / units.DAY)
  const months = Math.floor(diff / units.MONTH)
  const years = Math.floor(diff / units.YEAR)

  // 根据时间差选择最合适的单位
  if (seconds < 60)
    return `${seconds}秒前`
  if (minutes < 60)
    return `${minutes}分钟前`
  if (hours < 24)
    return `${hours}小时前`
  if (days < 30)
    return `${days}天前`
  if (months < 12)
    return `${months}个月前`

  // 超过1年显示具体年月日
  return new Date(timestamp).toLocaleDateString('zh-CN', {
    year: 'numeric',
    month: '2-digit',
    day: '2-digit',
  }).replace(/\//g, '-')
}
// 没有对应参数出现弹窗返回首页

export function goHome() {
  uni.showModal({
    title: '提示',
    content: '页面有误将返回首页',
    showCancel: false,
    success(res) {
      if (res.confirm) {
        uni.reLaunch({
          url: '/pages/index/index',
        })
      }
    },
  })
}
// 随机生成用户名
export function generateUsername() {
  // 定义字符集：26个小写字母 + 26个大写字母 + 10个数字 = 62个字符
  const charset = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
  let result = ''

  // 循环6次，每次随机选取一个字符
  for (let i = 0; i < 6; i++) {
    const randomIndex = Math.floor(Math.random() * charset.length)
    result += charset[randomIndex]
  }

  return result
}
